NASA-CR-203439
NASA
National Aeronautics and
Space Administration
Ames Research Center
Moffett Field, California 94035
ARC275<R«vFab81)
7/v-&Y-c:<e
a/ & B4^
The Fractional Fourier Transform and Applications
David H. Bailey and Paul N. Swarztrauber
RNR Technical Report RNR-90-004
The Fractional Fourier Transform and Applications
David H. Bailey and Paul N. Swarztrauber
March 9, 1990
Abstract
The paper describes the "fractional Fourier transform", which admits computation by
an algorithm that has complexity proportional to the fast Fourier transform algorithm.
Whereas the discrete Fourier transform (DFT) is based on integral roots of unity e~ 2l "/ n ,
the fractional Fourier transform is based on fractional roots of unity e~ 2ir * a , where a is
arbitrary. The fractional Fourier transform and the corresponding fast algorithm are useful
for such applications as computing DFTs of sequences with prime lengths, computing
DFTs of sparse sequences, analyzing sequences with non-integer periodicities, performing
high-resolution trigonometric interpolation, and detecting signals with linearly drifting
frequencies. In many cases, the resulting algorithms are faster by arbitrarily large factors
than conventional techniques.
Bailey is with the Numerical Aerodynamic Simulation (NAS) Systems Division at
NASA Ames Research Center, MofFett Field, CA 94035. Swarztrauber is with the National
Center for Atmospheric Research, Boulder, CO 80307, which is sponsored by National Sci-
ence Foundation. This work was completed while Swarztrauber was visiting the Research
Institute for Advanced Computer Science (RIACS) at NASA Ames. Swarztrauber's work
was funded by the NAS Systems Division via Cooperative Agreement NCC 2-387 between
NASA and the Universities Space Research Association.
1
1. Introduction
The conventional fast Fourier transform (FFT) algorithm is widely used to compute dis-
crete Fourier transforms (DFTs) and discrete convolutions, and to perform trigonometric
interpolation. However, in some applications of the FFT, either the input is only partially
nonzero, or only part of the DFT result is required, or both. Nonetheless, the FFT algo-
rithm is ordinarily used unless the desired results can be more efficiently computed directly
from the definition of the DFT. We present here a technique that permits many of these
applications to be computed more efficiently. This same technique can also be applied in
other situations that do not admit efficient solution using standard FFTs.
The central concept here is a generalization of the DFT that is termed the fractional
Fourier transform (FRFT). It is defined on the m-long complex sequence x = (xj, < j <
m) as
m-l
G k (x,a) = J2^~ 2iriJhQ (1)
i=o
The parameter a will not be restricted to rational numbers and in fact may be any complex
number. Although this transform is defined for all integers /?, we will usually compute it
for the first m nonnegative values, i.e. < k < m. Note that the ordinary DFT and its
inverse are special cases of the fractional Fourier transform:
m-l
F k (x) = £ xje- 2 ^™ (2)
3=0
= G fc (aj, 1/m) < k < m (3)
-j m— 1
■**» = -£*;^ jVm (4)
= — G k (x, -1/m) < k < m (5)
TO v '
The discrete Laplace transform can also be written in terms of the fractional Fourier
transform.
If a is a rational number, the FRFT can be reduced to a DFT and can thus be evaluated
using conventional FFTs. Suppose that a = r/n, where the integers r and n are relatively
prime and where n > m. Let p be the integer such that pr = 1 (mod n). Then (1) can
be written
m-l
G k (x,a) = Y, x i*~ 27rijkrfn (6)
m— 1
= £ a ^ e " 2lri(pi)Wn (7)
3=0
m-l
^ E^e- 2,rWn (8)
3=0
= Fk(y) 0<k<n (9)
where subscripts are interpreted modulo n and where y is the n-long sequence (xo, «p> fyp,
••■, aj( m _i)p,0, 0, 0, •••,0). Thus the first n values of the FRFT can be computed by
performing an n-point FFT on the sequence y. We will take 5nlog 2 n as the cost of this
operation, since that is the number of floating point operations in a radix-2 FFT of size n.
We will see in section 5 that the cost of computing an ?i-point DFT of a sparse sequence
such as y can be reduced to about 5nlog 2 m floating point operations by employing a
decimation scheme. Also, we will see in section 3 that when n — qm, the first m values
of a DFT can be computed in roughly 5n log 2 m floating point operations by employing a
different decimation scheme. Either of these techniques would reduce the cost of computing
the FRFT using (9).
2. The Fast Fractional Fourier Transform Algorithm
An impetus for studying the fractional Fourier transform is the existence of an algorithm
for computing it that is significantly more efficient than the ones described in the previous
section. The computational cost of this algorithm is only about 20mlog 2 m floating point
operations, which is independent of the value of a. In particular, this cost does not depend
on whether or not a is rational or even real. The algorithm is based on a technique
originally due to Bluestein [6] and is related to what is known in the signal processing field
as the "chirp z-transform" (see [11] and [12]).
This algorithm can be derived by noting that 2jk = j 2 + k 2 — (k — j) 2 . The expression
for the FRFT then becomes
m-l
G h (*,a) = £ a . J . c -«& a +*-(*-i) a ]« (10)
i=o
m-l
= e
— irik 2 a V^ v.f,-^^ m{k-3) 2 a
Y, Xj-e"** "e***-" a (11)
m-l
= e-^-^yjz^ (12)
3=0
where the m-long sequences y and z are defined by
yj = x^ 2 " (13)
*j = e^' 2 " .(14)
Since the summation (12) is in the form of a discrete convolution, it suggests evaluation
using the well known DFT-based procedure. However, the usual DFT method evaluates
circular convolutions, wherein Zk-j = Zk-j+m' This condition is not satisfied here, but
instead Zk-j = Zj-k when k — j < 0. Fortunately, it is possible to convert this summation
into a form that is a circular convolution. Suppose we wish to compute the the FRFT for
< k < m. First select an integer p > m — 1, and extend the sequences y and z to length
2p as follows:
y 3 ; = m<j<2p (15)
Zj f = m<j<2p~m (16)
Zj = e «0'- 2 P) 3 2p-m<j<2p (17)
It can be seen by inspection that the first m values of Gk(x,a) satisfy
2p-l
G k (x,a) = e-**" £ yi z fc _,. < k < m (18)
It can also be seen by inspection that the sequence z now satisfies the required property
for a 2p-point circular convolution. Thus it follows that 2p-point DFTs may be used to
evaluate (18):
G k (x,a) = e-^^F^iw) 0<k<m (19)
where w is the 2p-long sequence defined by w^ — Fk(y)Fk(z). It should be emphasized
that this equality only holds for < k < m. The remaining 2p — m results of the final
inverse DFT are discarded. These three DFTs can of course be efficiently computed using
2p-point FFTs (for discussions of computing FFTs, see [1], [4], [5], [7], [9], [11], [16] and
[17]). ^ _ .
To compute a different m-long segment (?*+,(«, a), < k < m, it is necessary to
slightly modify the above convolution procedure. In this case z is as follows:
(20)
(21)
(22)
The remainder of the algorithm is unchanged. This complete procedure will be referred to
as the fast fractional Fourier transform algorithm.
The technique of converting the summation (12) into a circular convolution can also
be understood as the embedding of a Toeplitz matrix into a larger circulant matrix, which
admits evaluation using an FFT. Readers who wish to study the matrix formulation of this
algorithm are referred to [15].
We will assume that 5qlog 2 q floating point operations are required for a <j-point FFT.
This is the cost of the commonly used radix-2 complex FFT. If q is not a power of two^
the cost is somewhat higher, depending on the factors of q. If m is a power of two, the
obvious choice for p is p = m. Then the total computational cost of the above algorithm
is 20m log 2 m + 44m floating point operations, assuming that the exponential factors in
(19) and the FFT of the z sequence have been precomputed. Note that this cost is
approximately four times the cost of the usual m-point FFT.
The efficiency of the above algorithm depends on the efficiency of the underlying circular
convolution algorithm used to evaluate (18). A variety of fast convolution algorithms exist
in the literature (see [2] and [11]), and one of these may be more attractive than using
FFTs, depending on the computer hardware and the application. Further, FFTs over
fields other than the complex numbers (see [11]) may be profitably employed in some
z • = e ir *0'+*) 2 °
< j < m
zj =
m < j < 2p — m
z . — e ^(i+*-2p) 2 o(
2p — m < j < 2p
instances. However, for simplicity in assessing the computational costs of algorithms, we
will assume in the following that ordinary complex FFTs are employed. We will also assume
when assessing costs that the sizes of DFTs and FRFTs are powers of two, although the
algorithms to be discussed are valid for any size. Hereafter only the dominant term of these
computational costs will be listed, since lower-order terms are generally overshadowed by
implementation details, especially for large sizes.
3. Computing Longer and Shorter Segments of Results
Formula (19) gives the first m values of the fractional Fourier transform. Multiple
segments of m values can be computed even more efficiently. For example, suppose one
wishes to compute the first r results of an FRFT, where r = qm. These can be efficiently
computed by repeating formulas (19) through (22) for s = 0, m, 2m, •••,(<? — l)m. In
this case it is reasonable to assume that for each value of s, the DFT of the appropriate
z sequence has been precomputed. Significantly, the DFT of the y sequence needs to be
computed only once. Thus each segment of m results can can be computed by multiplying
the DFT of the y sequence by the precomputed DFT of the appropriate z sequence,
performing an inverse 2p-point FFT on the result, and multiplying by exponentials as in
(19). The dominant cost of computing r results in this manner is lOr log 2 m floating point
operations (when r is large compared to m).
The discussion in the previous paragraph assumed that one is computing the first r
values of the FRFT. However, any set of r results that is the union of m-long contiguous
segments can be computed in this manner, and the computational cost is the same. It is
not even necessary to assume that the starting indices s of the segments are multiples of
m.
Segments of the FRFT shorter than m in length can be efficiently computed by using
a decimation scheme similar to that used for computing a short segment of a DFT. Since
the fast algorithm for a short segment of a DFT is not widely known, it will be presented
first.
Suppose that one wishes to compute the first m values of the DFT of the n-long sequence
a?, where n = qm. We can write
m— 1 q~ 1
AM = EEw- w (' + ")"" (23)
1=0 j=0
g-1 m-1
= Y, e ~ 2irijk/n Y, x 3+i<i € ~ 2irilk/rn (24)
j=0 1=0
q-1
= J e -*^( yi ) 0<k<m (25)
j=o
where y^ denotes the m-long sequence (a?j+/g, < / < m). This means that the first m
values of the n-point DFT of x can be computed by writing the input as a q x m matrix
in column major order, performing m-point FFTs on each row, multiplying the results by
certain exponentials and then summing each column. The dominant computational cost of
this procedure is 5nlog 2 m floating point operations, which is less than that of computing
a full-sized n-point FFT whenever m < n/2.
Formula (25) may be easily generalized to compute m values of the DFT starting at
any index s. One then obtains
g-l
**+.(«) = X; e " 2 " i(fc+5)/n ^( z i) 0<k<m (26)
i=o
where Zj = (x j+ i q e~ 2iril ^ m , < I < m).
The scheme described by equation (25) can be seen as an abbreviated form of an FFT
algorithm sometimes called the "four step FFT" (see [1] p. 150, [4], [9] p. 569, and [17] p.
202 - 203). This FFT algorithm has received renewed interest lately due its suitability for
some advanced computer architectures, particularly systems with hierarchical memories.
Formula (25) is also closely related to the "discrete Zak transform" [3].
This same general method can be applied to compute an m-long segment of an n-point
FRFT:
m— lg— 1
©»(•,«) = £ 2>, +( , e - 2 * i « +, «> te (27)
1=0 j=0
= Ee"** ta I> i+ « i e- M,h " (28)
j-0 t=o
g-l
= Se-'^G^ga) < k < m (29)
i=o
where y^ = (xj + i q , < / < ra). As above, this means that the first m values of the
n-point FRFT of x can be computed by writing the input as a q x m matrix in column
major order, performing m-point FRFTs on each row, multiplying the results by certain
exponentials and then summing each column. Note that the exponential factors in (29)
may be incorporated into the exponential factors in formula (19) and thus do not need to
be counted in the computational cost. Hence the dominant cost of this scheme is 20nlog 2 m
floating operations, which is always less than that of directly computing an n-point FRFT-r
The corresponding formula for an m-long segment of an n-point FRFT beginning at
some index s is
g-l
G k+$ (x,a) = Y, e ~ 2 ^ Jik+ ' )a Gk{z jiq a) 0<k<m (30)
j=o
where Zj = (xj + i q e~ 2mlq ' a i < / < m). Note that the exponential factors in these Zj
vectors can be incorporated into the factors in (20) and (22) and thus do not need to be
counted. Hence the dominant cost of this scheme is 20nlog 2 m floating point operations,
the same as above.
4. Computing DFTs of Sequences with Prime Lengths
It is popularly believed that DFTs can only be evaluated by a fast algorithm when the
size m of the transform is a highly factorable integer, such as a power of two. But since
the DFT is merely a special case of the FRFT, it follows that the fast fractional Fourier
transform algorithm can be used to compute m-point DFTs even when m is a prime. The
computational cost is only about four times the cost of a power of two FFT of comparable
size. This algorithm was first presented in Bluestein's paper [6].
It should be noted that Bluestein's algorithm permits DFTs of any size (not just primes)
to be computed using power of two FFTs, which are generally the most efficient FFTs
available on computer system libraries. Thus depending on the computer system and
implementation, Bluestein's algorithm may be more efficient for computing DFTs of certain
sizes than conventional FFTs. On some computer systems, such as hypercubes, Bluestein's
algorithm is preferable for computing DFTs of any size that is not a power of two [15].
Perhaps one reason that Bluestein's algorithm has not received more attention is that
another FFT algorithm for prime m was discovered at about the same time by Rader [13].
This algorithm reduces a DFT of prime size m to a circular convolution of size m — 1,
which in theory is only about half as costly as Bluestein's algorithm. Unlike Bluestein's
algorithm, however, Rader's algorithm does not generalize to the case of arbitrary a, and
there is little flexibility in the permissible sizes of FFTs that may be used for efficient
evaluation.
There are a number of other important applications of the basic technique behind
Bluestein's algorithm, which technique we have termed the FRFT. Several of these appli-
cations will be presented here, including some that were originally presented in [12],
5. Computing DFTs of Sparse Sequences
In this section we will describe efficient algorithms for computing DFTs of sequences
with large numbers of zero elements. DFTs of such sequences arise in trigonometric inter-
polation, as we shall see in section 7. Another common application is the computation of
the "linear" or "aperiodic" convolution, which is defined on the n-long sequences x and y
as the 2n-long sequence z — (£j=o ZjVk-jy < & < 2n — 1), where the subscript k — j
is restricted to the range < k — j < n — 1. Linear convolutions arise in applications
as diverse as multiprecision arithmetic and the numerical solution of partial differential
equations. This type of convolution is normally evaluated by padding the n-long input
sequences as and y with zeroes to length 2n, and then computing their 2n-point circular
convolution using FFTs.
Three cases of sparse DFTs will be considered. First we will compute the complete
DFT of an input sequence where only an initial segment is possibly nonzero. Second, we
will compute segments of such a DFT. Third, we will compute segments of the DFT of an
input sequence that has only a few nonzero segments.
Let n = qm. Suppose we wish to compute the DFT of an n-long sequence as that
is known to be zero except for the first m entries. This can be done by employing a
conventional FFT- based decimation scheme, as follows:
m-l
W») = E x,e- 2 "«* + '')/" (31)
E **•«"
i=o
-2*ij(k+lq)/n
m-l
E *i c '
-2irijk/n e -
-2-Kijlfm
fl(»»)
0</
< 771
(32)
< ft < q (33)
where #*. = (a^e -2 **'*/", < j < m). Thus for each &, < k < q, the m values of the
n-point DFT beginning at index k and increasing with stride q can be computed with a
conventional m-point FFT on the input sequence multiplied by certain exponentials. The
dominant cost of this procedure is 5nlog 2 m floating point operations, which is less than
that of an n-point FFT whenever m < n/2. This scheme will be used in section 7.
If only a single contiguous segment of the n-point DFT is required, then this approach
is unsatisfactory, since one can only obtain DFT results with a spacing of q from the above.
Further, the conventional method for computing a segment of a DFT in section 3 is also
unsatisfactory since each of the DFTs in the summation (26) must still be evaluated, with
no savings in computation. However, the FRFT can be effectively applied to this situation.
The simplest case is when only m values of the n-point DFT are required. In this case
we have
m-l
F k+t (x) = £ ^c-*****)/- (34)
3=0
= Gfc+,(y,l/n) 0<k<m (35)
where y = (xj, < j < m). The dominant cost here is the cost of an m-point FRFT,
or 20m log 2 m operations. This is less than the cost of conventional methods whenever
m < n/4 (for sufficiently large n).
Multiple sections can be computed even more economically by merely repeating (35)
for multiple values of a. As indicated in the first paragraph of section 3, savings result
because the FFT of the sequence y in (18) needs to be computed only once. The dominant
cost of computing r elements in this manner is lOr log 2 m floating point operations (when
r is large compared to m). Thus up to ra/2 elements of the DFT may be computed by
this method, and the cost is still less than computing all or part of the n-point DFT by a
conventional method (for large n).
We will now examine the case in which more than one m-long segment of the input
sequence x is possibly nonzero. An m-long segment of the n-point DFT of x can be written
F h+ ,(x) = £2>, + , m e- 2 " 0+ ' m)( * + * )/n (36)
j=o i=o
q-i m-l
= E € _2 ^ fe+ ^ m/n ]T x j+ i m e- 2 * ij ( k+a)/n (37)
f=0 j=0
8
9-1
= H e ~ 2wii(k+ ' )l/q Gk + .(ViA/n) 0<k<m (38)
1=0
where y t = (aj J+ / m , < j < m). With the assumption that only a few m-long input
segments are zero, it follows that most of the terms of this summation are zero. Thus only
a few of these FRFTs need to be actually computed.
We can assume that the exponential factors in (38) have been incorporated into the
exponential factors of formula (19). Suppose that only t of the-input segments y t contain
possibly nonzero elements. Then the total computational cost of computing an m-long
segment of the DFT is on the order of 20£mlog 2 m operations. This is less than the cost
of computing a segment of a DFT using the conventional scheme (33) whenever t < <jr/4
(for large n).
As indicated in section 3, multiple segments of results can be even more efficiently
computed by repeating (38) for several values of s. The dominant cost of computing r
values of the DFT in this way is lOtr log 2 m floating point operations (when r is large
compared to m). This is less than conventional methods whenever tr < n/2 (for large n).
Thus this method is not appropriate unless only a few segments of the input are possibly
nonzero and only a few segments of the result are desired.
6. Analyzing Sequences with Non-Integer Periodic Components
In many practical applications of DFTs and FFTs, notably in signal processing, it is
not really true that the underlying time series being studied is exactly periodic with period
m, where m is the size of the data sequence. Instead, the sampling interval and sample
size are usually selected arbitrarily for the convenience of hardware and software. Thus
in such applications it is the rule rather than the exception that a data sequence contains
components with periods that are not exactly whole numbers.
One instance of such an application is in computing solar positions. Daily solar altitude
and declination angles are readily available from almanacs. Such positions are not periodic
with period 365 days, but they are very nearly periodic with a fractional period of approx-
imately 365.2422 days. In other words, the apparent motion of the sun has a fairly simple
Fourier representation based on a period of 365.2422 days, but the representation is not
simple based on a period of 365 days. In this example we know from a priori information
what the true period is. But it general we usually do not even know that. Thus we see£
techniques that can determine such unknown periods and compute spectra based on the
true period once it is known.
Let x be the m-long sequence (e 2 **^ m , < j < m) where /3 is unknown and not an
integer. Then the DFT of x is
m-l
**(») = !£ e 2^i/3/m e -2iriiVm (39)
m-l
= Yl e 2irij ^ -/e)/m (40)
1 _ e 2irtj3
= , . (a ... 0<k<m (41)
Thus the spectrum of such a sequence is not a "spike" at a single index but instead is spread
over all indices. The magnitude of Fjt(x) is greatest for k closest to /3 and declines rapidly
with increasing distance from {3. It is fairly easy to determine the unknown frequency /3 to
within one or two units in this manner, but it is difficult to determine its true value more
accurately with such conventional techniques.
The fractional Fourier transform is well suited to studying these sequences because the
a in its definition may be arbitrary. In particular, one can use the FRFT to efficiently
compute a high resolution spectrum near /3. Let b be the greatest integer less than /?. Then
m spectra values starting at index b and increasing with interval S may be computed as
follows:
m-l
Fb+u(m) = E ^c-*^*")/** (42)
i=o
m-l
= E a iC -a*fcVm c -2iryM/m ^
= G h (y,6/m) 0<k<m (44)
where y = (xje~ 2m ^ m y < j < to). If fewer than to or greater than to spectral values
are desired, these can be efficiently computed by applying the techniques of section 3.
Suppose now that k is the index of the largest magnitude of this high resolution spectra.
Then a more accurate estimate of the true period /? is 6 + kS. With this new estimate
of /3, one can proceed to compute a period-based spectra. For example one could then
set 7 = (b + k6)/b and then apply formula (44) to compute the spectrum at the points
0, 7, 27, • • • , (m — 1)7. This spectrum will now have a fairly sharp peak at location 67.
This two-step procedure may be repeated to produce even more accurate estimates of j3
and even sharper spectra based on these estimated periods.
7. Performing High-Resolution Trigonometric Interpolation
The FFT is frequently used to perform trigonometric interpolation. For example, given
a sequence x in tabular form, we may wish to determine approximate midpoint values -
Xj+i/2* In the previous sections we have used the "aliased" form of the DFT:
m-l
F k (x) = X> ie - 2irWm 0<k<m (45)
i=o
In this section we will use the "unaliased" form of the DFT, which is defined on x =
(xj, — to/2 < j < m/2) as
m/2-1
A(«) = E Xje- 2 ™* 1 ™ -m/2<k<m/2 (46)
3= -m/ 2
10
The inverse unaliased DFT is defined analogously. For most purposes, the unaliased form
is not as convenient as the aliased form, because two different formulas are required for
m even and m odd (we will assume in the following that m is even). Further, most FFT
software for computing DFTs assumes the aliased form.
In discussions of trigonometric interpolation, however, the unaliased form is preferred.
The problem is that although Fk(x) = Fk{x) for each fe, their interpolated values may
be different (depending on how they are defined), so that Ffe +1 / 2 («) ^ i ? fc +1 / 2 (aj). This
disagreement stems- from the fact that the function /*(£) = e %kt has an infinite number
of alternate characterizations (or "aliases") on the points tj — 2nj/m, namely /fc+ m (£) =
e t(k+m)t £ or gjj m tegers m. These functions are indistinguishable from one another on the
points tj. However, at intermediate or interpolated values fk(t) and fk+ m (t) are different.
Therefore a choice of basis functions for the trigonometric expansion of a function /(£)
must be made. The most common choice is the set (/*(£) — e***, —m/2 < k < ra/2). This
set has minimum variance on < t < 2ir and thus ensures that the interpolated values will
be as smooth a possible.
For computational purposes, the unaliased form can be easily reduced to the aliased
form. One approach is to define m-long sequences y and Y such that y$ — (— l) J 'x,-_ m /2
for < j < m and Y k = (-1)* F k _ m/2 (x) for < k < m. Then
Y k = (-l) k F k -m,2(*) (47)
m/2-l
= e"^* J] x ie _2lrii(fc ~ m/2)/m (48)
j=— m/2
m-1
= E *;-m/ 2 e- 2 ^- m/2 > fc/m (49)
i=o
m-l
- E^ e " 2 " iVm (50)
= Fh(v) 0<k<m (51)
Thus Y is the ordinary m-point DFT of y. Alternately, one can define yj = Xj for
< j < m/2 and yj = a:j_ m for m/2 < j < m, and similarly define Yk in terms of Fk.
Then again Y is the ordinary DFT of y. Either way, FFT software designed to computer
the usual m-point aliased DFTs can be readily employed to compute m-point unaliased
DFTs.
We will now develop the traditional approach to trigonometric interpolation. Suppose
we wish to compute q interpolated values between each of the m values of x. Let n = qm.
We first compute the inverse unaliased DFT of x and then extend this spectra to the n-long
sequence Y as follows:
Y k = F k -\x) \k\ < m/2 (52)
Y- m/2 = \P: m/2 (x) (53)
11
m
/2 = 5^i /a (4) (54)
Y k = -n/2<k< -m/2 (55)
I* = m/2 <k<n/2 (56)
The splitting of ■FT m / 2 (£) i n the above is necessary to produce the most accurate interpo-
lated values. For example, if this is not done then trigonometric interpolation on purely
. real data will yield complex values. This split is not necessary if m is odd.
The 7i-long vector y of interpolated results yj = Xj/ qy where n = qm, can now be
computed from the unaliased n-point DFT of Y:
m/2
Vi = E r fc e- 2 ™ (j/ * )A/m (57)
fc=-m/2
n/2-1
= E Y k e-**M n -n/2<k<n/2 (58)
h--n/2
This approach requires an m-point inverse FFT followed by an n-point forward FFT, so
that the dominant cost is 5n log 2 n floating point operations.
This cost can be reduced somewhat by applying a decimation technique similar to that
employed in equations (31) through (33):
m/2
WWt = £ ««-**<*+*)/« (59)
k——m/2
m/2
_ £ y fcC -2**,yn e -2«MB/n (gQ)
*=-m/2
m/2-1
— Y^ V, e -2irikj/n e -2triklq/n _|_ y -irimj/n e -*imlq/n /g^\
k=— m/2
- F / (Z i ) + (-l) / y m/2 e-^* (62)
= l|(W r i ) + (-iy2y m / 2 cos(7rj7 ? ) -m/2</<m/2 0<j<? (63)
where Z,- = (Y k e- 2rik ^ n , -m/2 < & < m/2) and where Wj = Zj except that (Wj)_ m / 2 ,
the leftmost element of Wj, is zero. The formulas (62) and (63) differ only in that the
second is more appropriate for working with real data, since a real-valued FFT may be
used for computation. The dominant cost of computing all n interpolated values in this
fashion is 5nlog 2 m floating point operations.
In many applications of trigonometric interpolation, only a segment of the n interpo-
lated values are required. In this case the cost can be significantly reduced by applying
the FRFT, using techniques similar to those in section 5. Suppose we wish to compute
only the first m interpolated values in (58). This expression can be converted to a FRFT
12
as follows:
» = En-^e-^-"^" (64)
k=0
m
= e"'^J2Yk- m /2e- 2 " k ' /n (65)
fe=0
= e^^(Z,l/n) 0<j<m (66)
where Z is the (m + l)-long sequence (lfe_ m / 2 , < k < m).
Suppose for a minute that m is a power of two, and that the most efficient FFT sizes
employed for evaluating the FRFT on a given computer are also powers of two. It might
at first appear that increasing the size of an FRFT from m to m + 1 would require that
the size of FFTs used in computing the FRFT must be doubled to the next highest power
of two, with a corresponding sharp increase in computational cost. However, recall that
the parameter p of (18) can be any integer greater than one less than the size of the
FRFT. Thus 2m-point FFTs can still be used to evaluate FRFTs of size m + 1, and the
computational cost is virtually unchanged.
More generally, we can compute an m-long segment z of interpolated values beginning
with zq = x, and increasing with interval 8 as follows:
m/2
*j = E Yke-^'+M™ (67)
k—— m/2
m
= E *i_ /ie -* - (»— ^X»*-»/» (68)
m
= e^' + ^^^-W2 e " 2,n ' Wme " 2,riiW/m (69)
k=o
= e^'^G^Z.S/m) 0<j<m (70)
where Z is the (m + l)-long sequence (Yk- m /2e~ 2irik ^ m , < k < m).
Since the exponential factors in (70) can be incorporated into the precomputed expo-
nentials in (19), we do not need to count the cost of these multiplications. The dominant
cost of the algorithm is thus only 25mlog 2 m floating point operations. This is less than,
the cost of the conventional procedure in equations (62) and (63) whenever m < n/A (for
large n). Larger sections of results can be efficiently obtained by repeating (70) for different
starting indices s as indicated in section 3.
8. Detecting Signals with Linearly Drifting Frequencies
The authors first learned of the problem of detecting signals with linearly drifting
frequencies in discussions with scientists associated with the Search for Extraterrestrial
Intelligence (SETI) project at NASA Ames. Subsequently, the authors have learned that
similar problems arise in such fields as high- accuracy position determination using the
global positioning system satellites. In fact, signals with drifting frequencies will arise in
13
any situation where there is acceleration in the direction between the emitter of the signal
and the receiver. It often can be assumed that over the period of observation the frequency
drift is linear, so we will make this assumption in the following discussion.
Suppose that y is a time series of length n = qm that is the sum of a signal with a
linearly drifting frequency plus Gaussian noise. We will assume that the frequency is less
than m. Thus the time series can be written
Vj = ae 2 ^ w+ir ^ m + 6^ 0<i<n (71)
where a and b are scaling factors, and g$ are complex Gaussian deviates with unit variance.
We will be interested in applications where is a is much less than 6, or in other words where
the amplitude of the signal is much less than the amplitude of the noise.
The usual approach to detecting and analyzing such signals is to consider the n-long
time series asagxm array in row major order. We first compute the rn-point DFT of
each row in this array (i.e. the DFT of successive contiguous m-long segments of y), and
then compute squared magnitudes of each resulting array entry (see [8] and [10]):
X jtk = \F k (zj)\ 2 0<j<q, 0<k<m (72)
where Zj = (yj+i m , < / < m). When the frequency of the signal is constant (i.e. when
r is zero), detection of the signal can be achieved by merely summing the columns of
X to form an m-long vector. The "bin" containing the signal will then be evident as a
statistically large entry in this sum vector.
When the frequency of the signal to be detected is not constant (i.e. when r is nonzero),
this method fails since the "bin" containing the signal is different from segment to segment,
and thus no entry of the sum vector will contain a statistically large value. Nonetheless,
the signal is evident in this array as a "line" with a certain slope, and thus in theory it is
possible to detect such signals by computing sums in the X array over lines with a range
of slopes a:
9-1
S*( a ) = E X i,*int(M-«j) 0<fe<m (73)
3=0
where nint denotes nearest integer. When k is close to w and a is close to 2mr, then 5fc(a)
has a statistically large value and detection occurs. Unfortunately, the direct computation
of all these sums over a range of possible slopes a is very expensive [8].
Consider what appears at first to be an even more expensive calculation, namely com-
puting sums of values interpolated along the rows of X. In particular, consider the array
of sums
S r , k = Y, x i*H«+*r)i 0<r<q, 0<k<m (74)
where the subscript k + (a + Sr)j is interpreted literally as its fractional value, namely
as the result of trigonometric interpolation along the rows of the X array. Except for the
14
fractional subscripts, this corresponds to computing the sums 5fc(a r ), where a, = a + St.
The location (r, k) of the maximum value in the 5 array gives the drift rate and the initial
frequency of the detected signal.
This array of sums can be efficiently computed using the FRFT as follows. Define Xj t k
for negative k so that Xjj, = X^k+m* Let (xjj, —m/2 <l< m/2) be the unaliased inverse
m-point DFT of the j-th row of X. Then we can write
m/2-1
*** = E »i,ie- 2 " W/m ■ (75)
I=-m/2
m/2-1
XsMl*** = E «««-*-«*+<-+*»•/- (76)
f=-m/2
Thus
St* = E E 3 W e- 2 *[* + < a+ *W> m (77)
j=0 f=-m/2
",-1
, — 2iriajl/m — 2iri6rjlfm
E^/e" ' "e
c -a«M/m ( 7g J
m/2-1
I=-m/2 Li=°
m/2-1
£ v-""' (79)
i=-m/2
where
s r>l = Gi(z h Sr/m) (80)
*i = {*ue-*** /m , < i < <?) (81)
Hence this summation algorithm consists of performing inverse FFTs on rows of the X
array, followed by FRFTs on the resulting columns (with certain exponential multipliers),
followed by forward FFTs on the resulting rows. The computational cost of entire detection
algorithm is approximately 10nlog 2 n floating point operations, or in other words only
about twice the cost of an n-point complex FFT. For complete details, see [14].
9. Conclusions
We have described a number of applications of the FRFT and its associated fast algo-
rithm. The flexibility and efficiency of these methods permits new solutions to a variety
of problems that involve discrete Fourier analysis. In many cases, the resulting algorithms
are faster than the conventional methods of solution that utilize ordinary FFTs. In fact,
for sufficiently large problem sizes, these methods are often faster than the conventional
algorithms by arbitrarily large factors.
15
Acknowledgment
The authors wish to thank Izidor Gertner of the CUNY Graduate Center for informative
discussions on this subject.
References
1. Agarwal, R. C, and Cooley, J. W., "Fourier- Transform and Convolution Subroutines
for the IBM 3090 Vector Facility", IBM Journal of Research and Development, vol.
30 (1986), p. 145 - 162.
2. Agarwal, R. C, and Cooley, J. W., "New Algorithms for Digital Convolution", IEEE
Transactions on Acoustics, Speech, and Signal Processing, vol. ASSP-25, no. 5
(1977), p. 392 - 410.
3. Auslander, L., Gertner, I. and Tolimieri, R., "The Discrete Zak Transform: Applica-
tions to Time- Frequency Analysis and Synthesis of Non-Stationary Signals", IEEE
Transactions on Acoustics, Speech and Signal Processing, to appear.
4. Bailey, D. H., "FFTs in External or Hierarchical Memory", Journal of Supercomput-
ing, vol. 4 (1990), p. 23 - 35.
5. Bailey, D. H., "A High- Performance FFT Algorithm for Vector Supercomputers",
Internationa] Journal of Supercomputer Applications vol. 2 (1988), p. 82 - 87.
6. Bluestein, L. I., "A Linear Filtering Approach to the Computation of the Discrete
Fourier Transform", IEEE Transactions on Audio and Elect roacoustics, vol. AU-18,
no. 4 (1970), p. 451 - 455.
7. Cooley, J. W., and Tukey, J. W., "An Algorithm for Machine Computation of Com-
plex Fourier Series", Mathematics of Computation, vol. 19 (1965), p. 297 - 301.
8. Cullers, D. K., Linscott, I. R., and Oliver, B. M., "Signal Processing in SETI",
Communications of the ACM, vol. 28 (1985), p. 1151 - 1163.
9. Gentleman, W. M., and Sande, G., "Fast Fourier Transforms - For Fun and Profit",
AFIPS Proceedings, vol. 29 (1966), p. 563 - 578.
10. Gertner, I., "Optimal Detection and Separation of Chirp Signals", Proceedings of
ICASSP-90, 1990, to appear.
11. Nussbaumer, H. J., Fast Fourier Transform and Convolution Algorithms, Springer-
Verlag, New York, 1981.
12. Rabiner, L. R., Schafer, R. W., and Rader, C. M., "The Chirp z-Transform Algorithm
and Its Application", Bell System Technical Journal, vol. 48 (1969), p. 1249 - 1292.
16
13. Rader, C. M., "Discrete Fourier Transforms When the Number of Data Samples Is
Prime", Proceedings of the IEEE, vol. 56 (1968), p. 1107 - 1108.
14. Swarztrauber, P. N., and Bailey, D. H., "Efficient Detection a Continuous Wave
Signal with a Linear Frequency Drift", submitted for publication.
15. Swarztrauber, P. N., Sweet, R. A., Briggs, W. L., Henson, V. E., and Otto, J.,
"Bluestein's FFT for Arbitrary N on the Hypercube", submitted for publication.
16. Swarztrauber, P. N., "FFT Algorithms for Vector Computers", Parallel Computing,
1 (1984), p. 45 - 63.
17. Swarztrauber, P. N., "Multiprocessor FFTs", Parallel Computing, vol. 5 (1987), p.
197 - 210.
17
I